Some communication systems allow the user of a device, such as a personal computer, to communicate across a packet-based computer network such as the Internet. Such communication systems include voice over Internet protocol (“VoIP”) systems. These systems are beneficial to the user as they are often of significantly lower cost than conventional fixed line or mobile networks. This may particularly be the case for long-distance communication. To use a VoIP system, the user installs and executes client software on their device. The client software sets up the VoIP connections as well as providing other functions such as registration and authentication. In addition to voice communication, the client may also set up connections for other communication media such as video calling, instant messaging (“IM”), SMS messaging, file transfer and voicemail.
One type of communication system for packet-based communication uses a peer-to-peer (“P2P”) topology. To enable access to a peer-to-peer system, a user must execute P2P client software provided by a P2P software provider on their computer, and register with the P2P system. When the user registers with the P2P system, the client software is provided with a digital certificate from a server. Once the client software has been provided with the certificate, then calls or other communication connections can subsequently be set up and routed between users of the P2P system without the further use of a server in the set-up. Instead, the client looks up the required IP addresses from information distributed amongst the P2P client software on other end users' computers within the P2P system. That is, the address look-up list is distributed amongst the peers themselves. Once the IP address of a callee's terminal has thus been determined, the caller's P2P client software then exchanges certificates with the callee's P2P client software. The exchange of the digital certificates (or user identity certificates, “UIC”) between users provides proof of the users' identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the users.
It is therefore a characteristic of peer-to-peer communication that, once registered, the users can set up their own communication routes through the P2P system in an at least partially decentralized manner based on distributed address look-up and/or the exchange of one or more digital certificates, without using a server for those purposes. Further details of an example P2P system can be found in WO 2005/009019.
VoIP or other packet-based communications can also be implemented using non-P2P systems that do use centralized call set-up and/or authentication, e.g. via a server or cellular network.
In these and other types of communication system, there is increasing demand for multi-party calls, sometimes referred to as “conference calls”. That is, a call involving with multiple other participants, or multiple callees, meaning at least three participants in total. These could be either voice calls or video calls involving a voice element.
However, a difficulty with such calls is that each additional party introduces more noise into the session, and also increases the network resource usage, and increases the processing burden due to mixing the additional data stream at the host terminal. It would be advantageous to mitigate one, some or all of these effects to some extent.
In conferencing scenarios it is known for a conference host to select not to mix audio signals from all participants into the conference mix, as this would introduce an increased noise level from participants that are not actively speaking but are still sending their background noise from the location of their sending terminals. In such cases, the conference host will choose a certain number of most active channels for the conference mix. In order to do this the conference host performs a voice activity detection (VAD) on every individual signal that is received from participating terminals. Many different ways of selecting the most active channels are known and will not be discussed further in detail. Typically a VAD is run for each participating channel on the hosting terminal or server, but it is also possible that VAD information is transmitted from the end-points to the host, along with the payload.
Implementing a VAD process at the host therefore provides one solution to the above problem. However, it may be advantageous to look for other solutions.